import { defineStore } from 'pinia'
import { ref } from 'vue'
import {getLoginUserUsingGet} from "@/api/userController";

export const useLoginUserStore = defineStore('loginUser', () => {
  const loginUser = ref<API.LoginUserVO>({
    userName: '未登录',
  })

  async function fetchLoginUser() {
    const res = await getLoginUserUsingGet()
    // 此处判断res.data.code === 0是因为后端接口约定成功返回的状态码为0，而非HTTP默认的200；
    // 这种设计通常用于统一标识业务逻辑是否成功执行。
    if (res.data.code === 0 && res.data.data) {
      loginUser.value = res.data.data
    }
  }

  function setLoginUser(newLoginUser: API.LoginUserVO) {
    loginUser.value = newLoginUser
  }

  return { loginUser, fetchLoginUser, setLoginUser }
})
